package com.example.forum.services;

import com.example.forum.model.Board;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * Description: 板块服务层接口
 * User: DELL
 * Date: 2023-09-21
 * Time: 20:43
 */
public interface IBoardService {

    /**
     * 返回优先级较高的 n 个板块
     *
     * @param num
     * @return
     */
    public List<Board> selectTopNBoard(Integer num);

    /**
     * 将板块表中的帖子数量加一
     *
     * @param id 板块id
     * @return
     */
    @Transactional
    void addOneArticleCountById(Long id);

    /**
     * 根据板块 id 查询对应板块信息
     *
     * @param id 板块id
     * @return
     */
    Board selectById(Long id);

    /**
     * 将板块表中的帖子数量减一
     * 当帖子数量为 0 时,将不会更新帖子数量
     *
     * @param id 板块id
     * @return
     */
    @Transactional
    void delOneArticleCountById(Long id);
}
